home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple Macintosh CD: Power Macintosh 4400 Series
/
691-1334-A,B,Power Macintosh 4400 Series. Apple Macintosh CD. (CD).toast
/
CD Extras
/
ARA Client Install
/
Modem CCLs
/
Prometheus ProModem 144e
/
Prometheus ProModem 144e
next >
Wrap
Text File
|
1996-05-24
|
7KB
|
371 lines
! Prometheus ProModem 144e 7/21/93 SDH
!
! 'mlts' resource info for this modem:
! byte 1 == 01 -> modem HAS builtin reliability protocols
! byte 2 == 00 -> reserved by Apple
! byte 3 == 28 -> max hex chars in varstr 7 (40 dec)
! byte 4 == 28 -> max hex chars in varstr 8
! byte 5 == 28 -> max hex chars in varstr 9
!
@ORIGINATE
@ANSWER
!
! set up the modem - label range is 1-10
!
! Mac talks to the modem at 19,200 bps.
serreset 19200, 0, 8, 1
!
! reset serial port for hardware options
HSReset 0 0 0 0 0 0
!
settries 0
@LABEL 1
flush
matchclr
matchstr 1 3 "OK\13\10"
! &f - recall factory settings
! &d0 - ignore DTR from DTE
! e0 - Turn command echo off
! \n0 - turn off all error control
! w2 - CONNECT message returns DCE speed
! y1 - disconnect on long break
! \k0 - enter command mode but don't send break
! %e0 - turn off auto retrain
! \j0 - DTE and DCE may operate independently
write "AT&f&d0e0\\n0w2y1\\k0%e0\\j0\13"
matchread 30
inctries
iftries 2 71
! Modem is not responding, send a long break
LBreak
jump 1
!
@LABEL 3
! Modem responding & configured.
! Determine if reliable link is requested.
!
! If modem mnp10 link requested (var 4 == 2) then jump label 4
! If modem v42 link requested (var 4 == 1) then jump label 5
! If no modem v42 link requested (var 4 == 0) [same as ARA 1.0] then jump label 9
!
ifstr 4 4 "2"
ifstr 4 5 "1"
ifstr 4 9 "0"
!
! Else invalid value in var 4, exit with error
jump 76
!
!
@LABEL 4
! Use this label for mnp 10 type stuff...
! This modem doesn't support mnp 10 links.
jump 7
!
@LABEL 5
! Reliable link is requested. OK for LAP-M -> MNP 4.
matchclr
matchstr 1 7 "OK\13\10"
! \n3 == v42 autoreliable mode
! %c0 - disables MNP compression
! "h0 - disables V.42bis compression (\34 in lieu of ")
! s95 = 77 - enable CONNECT, CARRIER, and PROTOCOL result codes
write "AT\\n3%c0\34h0s95=77\13"
matchread 300
jump 71
!
@LABEL 7
! If we DID support compression in the modem, this is where it would go.
!
@LABEL 9
! If speaker on flag is true, jump to label 13. Else turn off the speaker.
ifstr 2 13 "1"
pause 5
matchclr
matchstr 1 13 "OK\13\10"
write "ATM0\13"
matchread 30
jump 71
!
! Modem ready, so enable answer or dial mode - label range is 11-30
! Determine if answer or originate mode.
!
@LABEL 13
pause 5
ifANSWER 62
!
! Dial type dispatch
!
! Normal dialing (parm 6 == 0) jump to 19
! Blind dialing (parm 6 == 1) jump to 17
! Manual dialing (parm 6 == 2) jump to 15
!
ifstr 6 19 "0"
ifstr 6 17 "1"
ifstr 6 15 "2"
!
! Else invalid value in var 6, exit with error
jump 76
!
@label 15
ASK 2 "Pick up the phone & dial ^1. Hit OK when the phone rings, then hangup." 80
note "Manual dialing initiated..." 3
! X1 to ignore dialtone & busy for manual dialing, D to dial
write "ATX1D \13"
jump 32
!
@label 17
note "Dialing without dialtone." 3
matchclr
matchstr 1 19 "OK\13\10"
! X1 to ignore dialtone & busy for blind dialing
write "ATX1\13"
matchread 30
jump 71
!
! This is where we break up long dialstrings - label range is 19 - 27.
!
@label 19
! Parameter 1 contains the full dialstring from the connection document.
! Parameter 3 contains "P" for pulse & "T" for tone dialing.
! Parameters 7, 8 & 9 contain the dial string broken up into
! lengths which the modem's command buffer can handle as defined
! by the 'mlts' resource.
!
note "Dialing ^1." 3
!
! If parm 8 is blank goto sending parm 7 only
! else send parm 7 with semicolon
ifstr 8 25 " "
!
matchclr
matchstr 1 21 "OK\13\10"
write "ATD^3^7;\13"
matchread 400
jump 71
!
! If parm 9 is blank goto sending param 8
! else send param 8 with semicolon & param 9
@label 21
ifstr 9 27 " "
!
matchclr
matchstr 1 23 "OK\13\10"
write "ATD^3^8;\13"
matchread 400
jump 71
!
! Send final parameter string then wait for
! connect message.
!
@label 23
write "ATD^3^9\13"
jump 32
!
@label 25
write "ATD^3^7\13"
jump 32
!
@label 27
write "ATD^3^8\13"
jump 32
!
! Connecting - label range is 31-60
!
@LABEL 32
matchclr
matchstr 1 34 "CONNECT 1200\13\10"
matchstr 2 35 "CONNECT 2400\13\10"
matchstr 3 36 "CONNECT 4800\13\10"
matchstr 4 37 "CONNECT 7200\13\10"
matchstr 5 38 "CONNECT 9600\13\10"
matchstr 6 39 "CONNECT 12000\13\10"
matchstr 7 40 "CONNECT 14400\13\10"
! other connect speeds go below here
matchstr 8 68 "RING\13\10"
matchstr 9 72 "NO DIALTONE\13\10"
matchstr 10 73 "NO CARRIER\13\10"
matchstr 11 73 "ERROR\13\10"
matchstr 12 74 "BUSY\13\10"
matchstr 13 75 "NO ANSWER\13\10"
matchstr 14 77 "MODEM IN USE\13\10"
! other error messages go below here
matchstr 15 44 "PROTOCOL: NONE\13\10"
matchstr 16 45 "PROTOCOL: ALT\13\10"
matchstr 17 46 "PROTOCOL: LAP-M\13\10"
!
matchread 700
! If in ANSWER mode, loop back.
! else if in ORIGINATE, the modem has timed out.
ifANSWER 32
jump 71
!
! This modem has been setup to do CTS handshaking,
! and we assume that a CTS handshaking cable is being used,
! so we leave the serial port set to 19,200 bps.
!
@LABEL 34
note "Communicating at 1200 bps." 2
CommunicatingAt 1200
jump 58
!
@LABEL 35
note "Communicating at 2400 bps." 2
CommunicatingAt 2400
jump 58
!
@LABEL 36
note "Communicating at 4800 bps." 2
CommunicatingAt 4800
jump 58
!
@LABEL 37
note "Communicating at 7200 bps." 2
CommunicatingAt 7200
jump 58
!
@LABEL 38
note "Communicating at 9600 bps." 2
CommunicatingAt 9600
jump 58
!
@LABEL 39
note "Communicating at 12000 bps." 2
CommunicatingAt 12000
jump 58
!
@LABEL 40
note "Communicating at 14400 bps." 2
CommunicatingAt 14400
jump 58
!
! Reliable link connections.
! Tell ARA with USERHOOK 2 that a modem reliable link has been established.
!
@LABEL 44
jump 32
!
@LABEL 45
note "MNP reliable link established." 3
userhook 2
jump 32
!
@LABEL 46
note "LAP-M reliable link established." 3
userhook 2
jump 32
!
! Carrier (dce) connections.
!
@LABEL 50
note "Carrier at 14400 bps." 3
jump 32
!
@LABEL 58
! set serial port for hardware CTS handshake
HSReset 0 1 0 0 0 0
!
! Connection established. In ORIGINATE mode pause before exit.
!
ifANSWER 59
pause 30
@LABEL 59
exit 0
!
! @ANSWER
! Set the modem to answer on 1st ring - label range is 61-70
!
@LABEL 62
matchclr
matchstr 1 32 "OK\13\10"
write "ATS0=1\13"
matchread 30
jump 71
!
! RING entry point
! If originate mode return to waiting for input.
! Else claim the serial port and return.
!
@LABEL 68
ifORIGINATE 32
userhook 1
note "Answering call..." 2
jump 32
!
! Error messages - label range is 71-100
!
! Modem Not Responding
@LABEL 71
exit -6019
!
! No Dial Tone
@LABEL 72
exit -6020
!
! No Carrier or Error
@LABEL 73
exit -6021
!
! Busy
@LABEL 74
exit -6022
!
! No Answer
@LABEL 75
exit -6023
!
! Invlaid Varstring Value
@LABEL 76
exit -6027
!
! Modem in Use
@LABEL 77
exit -6002 "Modem is in use by another application"
!
@LABEL 80
exit -6008
!
! Hang up the modem - label range is 101-120
!
@HANGUP
@LABEL 102
flush
settries 0
HSReset 0 0 0 0 0 0
@LABEL 105
!
! Repeat hangup command and escape sequence 3 times max.
!
@LABEL 108
pause 10
matchclr
matchstr 1 111 "NO CARRIER\13\10"
matchstr 2 111 "OK\13\10"
matchstr 3 111 "ERROR\13\10"
write "ATH\13"
matchread 30
inctries
iftries 3 71
! no response, try escape sequence
matchclr
matchstr 1 108 "OK\13\10"
pause 11
write "+++"
pause 11
matchread 15
jump 105
!
! Recall the factory settings.
!
@LABEL 111
pause 15
matchclr
matchstr 1 114 "OK\13\10"
write "AT&f\13"
matchread 30
jump 71
!
@LABEL 114
exit 0
!
! Labels 121-128 are reserved for future emergency hacks
!